A variety of network switching systems have been developed, such as routers, switches and the like. A switching system may commonly include multiple devices, such as switches, line cards or other devices. Each device may include one or more ports. Depending on the direction of traffic, a port may act as an input (or ingress) port or an output (or egress) port. One function of a network switching system is to receive packets (messages) on an ingress port, and forward or route the packet via a selected egress port.
Devices may be combined or coupled together in a variety of arrangements, including a ring interconnect, a mesh interconnect, a stacked arrangement, or other arrangement. Switch fabric devices, such as shared memory switches, a cross bar switch or other switch fabric device, may be used in some cases to provide interconnections between network switch devices (e.g., line cards, switches, network processors), e.g., to provide higher bandwidth.
Congestion, in some cases, may be a problem for networking switching systems. Congestion may occur when an offered load of network traffic exceeds the processing or forwarding capacity of the affected element (e.g., switch, port, line card). Congestion may result from, for example, speed mismatches (e.g., fast ports forwarding to slow ports), oversubscription (e.g., multiple ports forwarding to a single port or group of ports of lesser total bandwidth), etc. In some network switching systems, FIFOs (first in, first out buffers) are used to absorb excess traffic near a congestion point. When a FIFO fullness at an egress device exceeds a congestion threshold, an indication is usually provided to the traffic source(s). This is an example of a system that detects congestion, and then reacts to the congestion.
Other types of network switching may use relatively inflexible packet formats and header formats, which may in some cases cause significant overhead for those systems.